/**
 * <b>项目名：</b>oasis-service<br/>
 * <b>包名：</b>com.bookdao.oasis.common.spring<br/>
 * <b>文件名：</b>SpringBeanUtil.java<br/>
 * <b>描述：</b><br/>
 * <b>版本信息：</b>v1.0.0<br/>
 * <b>日期：</b>2015年10月27日-下午7:41:54<br/>
 * <b>Copyright (c)</b> 2015智道@版权所有<br/>
 */

package com.bookdao.oasis.common.spring;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

/**
 * <b>类名称：</b>SpringBeanUtil <br/>
 * <b>类描述：</b>获取spring容器中对象<br/>
 * <b>创建人：</b>zhanghj<br/>
 * <b>修改人：</b><br/>
 * <b>修改时间：</b>2015年10月27日 下午7:41:54<br/>
 * <b>修改备注：</b><br/>
 * <b>版本信息：</b>v1.0.0<br/>
 */
@Component
public class SpringBeanUtil implements ApplicationContextAware {
	private static ApplicationContext context;

	/* (non-Javadoc)
	 * @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext)
	 */
	@Override
	public void setApplicationContext(ApplicationContext applicationContext)
			throws BeansException {
		context=applicationContext;
	}
	/**
	 * 
	 * @Title getBean
	 * @Description 根据beanId获取实例对象
	 * @param beanId 组件对应的id名称
	 * @return 
	 * Object 返回实例
	 * @author zhanghj
	 * @date 2015年10月27日-下午7:46:33
	 * @update 
	 * @throws
	 */
	public static Object getBean(String beanId){
		return context.getBean(beanId);
	}
	/**
	 * 
	 * @Title getBean
	 * @Description 根据类类型返回实例
	 * @param clazz 类类型
	 * @return 
	 * T 
	 * @author zhanghj
	 * @date 2015年12月13日-下午9:55:32
	 * @update 
	 * @throws
	 */
	public static <T> T getBean(Class<T> clazz) {
    	try {
			return context.getBean(clazz);
		} catch (Exception e) {
			return null;
		}
    }
	/**
	 * 
	 * @Title getBean
	 * @Description TODO
	 * @param beanId
	 * @param clazz
	 * @return 
	 * T 
	 * @author zhanghj
	 * @date 2015年12月13日-下午9:58:03
	 * @update 
	 * @throws
	 */
	public static <T> T getBean(String beanId, Class<T> clazz) {  
		return context.getBean(beanId, clazz);  
	}

	    
}
